﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TwoDimArray_Task_3_4
{
    class Program
    {
        static void Main(string[] args)
        {

            //SumInRowsAndMaxSumRowNumber();
            NotNullElemMultiplication();
        }

        //3) Заполнить двумерный массив случайными числами от 10 до 100. Посчитать сумму элементов 
        //    отдельно в каждой строке и определить номер строки, в которой эта сумма максимальна.
        static void SumInRowsAndMaxSumRowNumber()
        {
            Console.WriteLine("Введите количество строк массива");
            int rows = Int32.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество столбцов массива");
            int columns = Int32.Parse(Console.ReadLine());
            Console.WriteLine("___________________________________________________");
            int[,] testArray = CreateRandArray(rows, columns, 0, 10);
            PrintArray(testArray);

            int[] rowSumArray = new int[rows];
            for (int i = 0; i < rows; i++)
            {
                int rowSum = 0;

                for (int j = 0; j < columns; j++)
                {

                    rowSum = rowSum + testArray[i, j];

                }

                rowSumArray[i] = rowSum;

            }
            foreach (int el in rowSumArray)
                Console.WriteLine(" Сумма элементов в строке {0} составляет {1}", Array.IndexOf(rowSumArray, el) + 1, el);
            Console.WriteLine(" Максимальная сумма элементов находится в строке {0} и составляет {1}", Array.IndexOf(rowSumArray, rowSumArray.Max()) + 1, rowSumArray.Max());


        }
        static int[,] CreateRandArray(int rowCount, int columnCount, int minValue, int maxValue)
        {
            int[,] newArray = new int[rowCount, columnCount];
            Random rnd = new Random();

            for (int i = 0; i < rowCount; i++)
            {
                for (int j = 0; j < columnCount; j++)
                {
                    newArray[i, j] = rnd.Next(minValue, maxValue);

                }

            }
            return newArray;


        }
        static void PrintArray(int[,] arrayForPrint)
        {
            for (int i = 0; i < arrayForPrint.GetLength(0); i++)
            {
                for (int j = 0; j < arrayForPrint.GetLength(1); j++)
                {
                    Console.Write("{0} \t ", arrayForPrint[i, j]);
                }
                Console.WriteLine();

            }

        }
        //Метод для печати одномерного массива
        static void PrintOneDimArray(int[] arrayOneDimForPrint)
        {
            for (int i = 0; i < arrayOneDimForPrint.GetLength(0); i++)
            {

                Console.Write("{0} \n", arrayOneDimForPrint[i]);


            }

        }
        //  4) Создать двумерный массив, заполненный случайными числами.Найти произведение ненулевых элементов массива.
        static void NotNullElemMultiplication()
        {
            Console.WriteLine("Введите количество строк массива");
            int rows = Int32.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество столбцов массива");
            int columns = Int32.Parse(Console.ReadLine());
            Console.WriteLine("___________________________________________________");
            int[,] testArray = CreateRandArray(rows, columns, 0, 10);
            PrintArray(testArray);
            Console.WriteLine("___________________________________________________");

            int multiplyer = 1;
            for (int i = 0; i < rows; i++)
            {

                for (int j = 0; j < columns; j++)
                {
                    if (testArray[i, j] != 0)
                        multiplyer *= testArray[i, j];

                }

            }
            Console.WriteLine(" Произведение ненулевых элементов составляет {0}", multiplyer);

        }
    }
}
